perm filename NSF.84O[S84,JMC] blob sn#752008 filedate 1984-04-27 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	nsf.84[s84,jmc]		Research plans
C00007 00003	1. Neither the languages of mathematical logic nor present programming
C00018 00004	Modifying programs without reading them (or not reading them much)
C00019 ENDMK
C⊗;
nsf.84[s84,jmc]		Research plans
1. Neither the languages of mathematical logic nor present programming
languages have the power of natural language, although both provide
necessary supplements to natural language in their respective domains.  In
order to have fully intelligent computer programs, we need to understand
what is powerful about natural language and how to give this power
to programs.  Naturally opinions differ about where this power comes
from.  Some suppose it comes simply from the irregularity of natural
language, but irregularity per se does not give power.

Some suggestions have been made to use natural language as an
internal language for AI, but so far nothing has been done that
isn't equivalent to a subset of first order logic.  Moreover, the
natural language front ends that have been developed just manage
to express in natural language what we already know how to express
in some kind of computerese.  This has the problem backwards.
Rather natural language must teach us to express in a computer
things that we have not previously been able to represent at all.

Our work on non-monotonic reasoning has provided a clue to a part
of the greater expressive power of natural language.

Present mathematical logic is based on the idea of an interpretation
of a language.

1. Non-monotonic programming languages.  With few and unimportant
exceptions present programming languages and their compilers are
monotonic in the following sense.  Each construction in the source
language, except declarations, gives rise to code in the target
language.  However, human descriptions of procedures often do not
have this character.

	
Artificial intelligence requires formal languages that have the
flexibility of natural language, but it is difficult to make
precise what this flexibility is.  One aspect comes from the fact
that the concepts used in natural language do not have to have
general precise definitions or even to be fully understood in order to be usable.
Indeed a large part of philosophy is involved in trying to make
precise concepts from natural language.  This philosophical work
typically involves take a concept that people think they understand
and showing, by inventing hypothetical cases, that we are unsure
about what it means in general.  However, even when uncertainty
about a concept is demonstrated and remains unresolved, people
still use the concept successfully in its previous domain.
If an artificial intelligence is to use these concepts, we
must build it with a capability like that of a human to use
concepts about whose meaning problems remain.  Otherwise, we
will have to solve all the philosophical problems of meaning
before we can begin on artificial intelligence.

Our goal, therefore, is to formalize a certain class of imprecise
concepts.  We plan to use ordinary logic coupled with non-monotonic
inference, most likely circumscription.  The idea is that a
particular usage of a concept is presumed meaningful and unambiguous
unless there is evidence to the contrary.

An example will help make the problem and our goal clear.  Suppose
we want to build a legal expert system to advise a district attorney
about what indictments will be supported by the facts of a particular
case.  Suppose that one of the relevant laws passed by a legislature
makes it a crime to attempt to bribe a public official.  Thus our
program should sometimes recommend an indictment for violating
this law.

	In an environment without expert systems such a law may
be on the books for many years and many cases tried before the
following possibilities for ambiguity are noted.

De dicto defense:

	A lawyer offers the following defense.  "You have offered
evidence that my client offered the Commissioner of Motor Vehicles
α$5,000 to avoid losing his license for drunk driving, but you
haven't proved that my client knew the man was the Commisioner.
My client may have thought he was just a lawyer.  Surely attempting
to bribe a public official requires that the briber know the
person is a public official."

De re defense:

	Another lawyer offers a different defense.  "You have offered
evidence that my client offere α$5,000 to this man under the impression
that he was the Commissioner, but his appointment hadn't started yet
in the new administration, so he wasn't in fact a public official.
Surely to attempt to bribe a public official, the person to whom
the bribe is offered must actually be a public official".

Indefiniteness defense:

	"It is true my client advertised in the %2Criminal Gazette%1
that he would pay α$5,000 to any public official who would fix
his drunk driving conviction, but you haven't exhibited a specific
public official who was likely to read the advertisement.  Surely
an attempt to bribe a public official requires a public official
one is attempting to bribe".

	Our present point is not the resolution of such ambiguities in which
both lawyers and philosophers have been interested.  Instead we
are interested in the fact that indictments have been sought
and cases tried in which no participant was aware of the possibility
of ambiguity in the law.  Indeed these particular ambiguities don't
arise in a case where a specific public official whom the defendant
knew to be a public official is involved.  In fact even after an
ambiguity has been discovered and a case involving it is still
in litigation, cases not involving the ambiguity are resolved
as before.

	Our proposed resolution of the problem involves a non-monotonic
rule that a concept is to be regarded as unambiguous in all cases
where an ambiguity cannot be exhibited.

	A quite different kind of potential ambiguity arises in the
case of the word "Stanford".  We aren't for the moment interested
in its interpretation as designating a person, but suppose the
trustees of Stanford University decided to move the University
to Texas.  Suddenly many references to Stanford would become
ambiguous in ways no-one previously contemplated.

	Our goal is to make a computer system that could use such
a concept without ever noticing a specific ambiguity.  If an
ambiguity arose it might be "puzzled", but it wouldn't lose its
ability to use the concept in unambiguous cases.

	Our actual goal with regard to using non-monotonic
reasoning to make more flexible logical languages is not quite
as precise as the above would suggest.  There are many interesting
phenomena here, and we propose to explore them.
Proposed research

1. Formalization of common sense knowledge and reasoning

2. Non-monotonicity

3. Programming without looking

4. CBCL

5. Mathematical Theory of Computation and programming languages
Modifying programs without reading them (or not reading them much)